<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			// 写出具体步骤
			function Foo(){
				getName = function(){
					console.log(1);
				}
				return this;
				// this{getName:1}
			}	
			
			Foo.getName = function(){
				console.log(2);
			}  // 2
			
			
			
			Foo.prototype.getName = function(){
				console.log(3);
			} // prototype: 3
			
			
			var getName = function(){
				console.log(4);
			} // getName: 4
			
			function getName(){
				console.log(5);
			} // 预编译getName: 5 然后被覆盖了
			
			Foo.getName(); // 2
			getName(); // 4
			Foo().getName(); // Foo() -> getName()到Go了 -> Foo -> 2
			// 1
			getName(); // 1
			new Foo.getName();// 不知道 .运算比new要高 Foo.getName() -> 2
			// 2
			new Foo().getName(); // 2 括号比.优先级高 -> new Foo()一起执行 -> 没有this.getName -> 找prototype
			// 3 new Foo() -> Foo.prototype
			new new Foo().getName(); // 3 -> new 3还是3
		</script>
	</body>
</html>
